using System;
using System.Collections.Generic;
using System.Text;

namespace MakeIT.SGI.ERP.Entidades
{
	public class CaixaVO
	{
		// Impedir o uso de new para esta classe
		protected CaixaVO() { }

		// Cria uma instancia desta classe
		public static CaixaVO CreateVO()
		{
			CaixaVO caixa = new CaixaVO();
			caixa.idFilialVO = FilialVO.CreateVO();
			caixa.idCaixatipoVO = CaixatipoVO.CreateVO();
			return caixa;
		}
		public static CaixaVO CreateVO(int idCaixa, string caixa)
		{
			CaixaVO obj = CreateVO();
			obj.idCaixa = idCaixa;
			obj.caixa = caixa;
			return obj;
		}
		// Descrição amigavel do conteudo deste objeto
		public override string ToString()
		{
			return caixa!=null?caixa.ToString():"";
		}
		// Retorna PK concatenada com ";"
		public string PKString
		{
			get { return idCaixa.ToString(); }
		}

		#region MEMBROS DA CLASSE
		public int idCaixa
		{
			get { return this._idCaixa; }
			set { this._idCaixa = value; }
		}
		private int _idCaixa;
		public string caixa
		{
			get { return this._caixa; }
			set { this._caixa = value; }
		}
		private string _caixa;
		public int idFilial
		{
			get { return this._idFilial; }
			set { this._idFilial = value; 
			      if(value!=null) this.idFilialVO.idFilial = (int)value; }
		}
		private int _idFilial;
		public int idCaixatipo
		{
			get { return this._idCaixatipo; }
			set { this._idCaixatipo = value; 
			      if(value!=null) this.idCaixatipoVO.idCaixaTipo = (int)value; }
		}
		private int _idCaixatipo;
		public decimal saldo
		{
			get { return this._saldo; }
			set { this._saldo = value; }
		}
		private decimal _saldo;
		public char situacao
		{
			get { return this._situacao; }
			set { this._situacao = value; }
		}
		private char _situacao;
		public DateTime cadastro
		{
			get { return this._Cadastro; }
			set { this._Cadastro = value; }
		}
		private DateTime _Cadastro;
		public string cadastradoPor
		{
			get { return this._CadastradoPor; }
			set { this._CadastradoPor = value; }
		}
		private string _CadastradoPor;
		public DateTime edicao
		{
			get { return this._Edicao; }
			set { this._Edicao = value; }
		}
		private DateTime _Edicao;
		public string editadoPor
		{
			get { return this._EditadoPor; }
			set { this._EditadoPor = value; }
		}
		private string _EditadoPor;
		public FilialVO idFilialVO
		{
			get { return this._idFilialVO; }
			set { this._idFilialVO = value; }
		}
		private FilialVO _idFilialVO;
		public CaixatipoVO idCaixatipoVO
		{
			get { return this._idCaixatipoVO; }
			set { this._idCaixatipoVO = value; }
		}
		private CaixatipoVO _idCaixatipoVO;
		#endregion
	}
}
